pi=3.14159 DEF FNrad(x)=x*pi/180 'Convert degrees to radians mi$="miles" de$="deegrees" WINDOW 2,,(0,0)-(629,186),0 PRINT PRINT"VE3AGC J.P.MILLAR 1102-756 Kipps Lane, London, Ontario N5Y 4X9 519-434-0992" PRINT"Enter HOME LOCATION or CITY? in lower case" PRINT"Enter LATITUDE and LONGITUDE in degrees.minutes" PRINT"Enter East Longitude and South Latitude as negative numbers" PRINT"On CITY? requester enter list or quit as required" PRINT"When listing use Amiga S or CTRL S to stop and any key to start" PRINT"Right mouse button can also control listing on screen" PRINT"Defaults are NO SPEECH and SCREEN" PRINT COLOR 3,2:INPUT"SPEECH Y/N";s$ INPUT"SCREEN OR PRINTER S/P";p$ INPUT"HOME LOCATION";b$:ab$=UCASE$(b$) IF LEFT$(s$,1)="y"THEN 10 GOTO 20 10 : SAY TRANSLATE$(b$) 20 : INPUT"LATITUDE";c:w=c:GOSUB conv l = FNrad(w) INPUT"LONGITUDE";e:w=e:GOSUB conv m = FNrad(w) IF p$="p"THEN 90 COLOR 1,0:CLS PRINT TAB(31)"DISTANCE & HEADING " LINE (233,8)-(390,8),1 PRINT DATE$ PRINT PRINT"HOME LOCATION: "ab$; PRINT USING " LAT ####.##";c; PRINT USING " LONG ####.##";e PRINT PRINT "DISTANT LOCATION"TAB(23)"LAT"TAB(34)"LONG"TAB(45)"KM"; PRINT TAB(57)"MILES"TAB(69)"HEADING " PRINT WINDOW 3,,(0,50)-(629,186),0 30 : WINDOW 4,,(210,100)-(410,125),0 PRINT"LIST or QUIT if required" LINE (0,8)-(198,8),1 PRINT:COLOR 3,2:INPUT"CITY";d$ WINDOW CLOSE 4 IF d$="list"THEN 80 IF d$="quit"THEN NEW 40 : READ a$,a,b IF a$=b$THEN 40 IF b=e THEN m=m+0.001 IF LEFT$(a$,8)=LEFT$(d$,8)THEN 50 IF a$="xx"THEN RESTORE:PRINT UCASE$(d$);" NOT LISTED IN DATA":GOTO 30 GOTO 40 50 : w=a:GOSUB conv d=FNrad(w):w=b:GOSUB conv f=FNrad(w) GOSUB calc a$=UCASE$(a$):z=CINT(x*1.6093):x=CINT(x):y=CINT(y) IF LEFT$(s$,1)="y"THEN 60 GOTO 70 60 : SAY TRANSLATE$(a$):SAY TRANSLATE$(STR$(x)):SAY TRANSLATE$(mi$):SAY TRANSLATE$(STR$(y)) SAY TRANSLATE$(de$) 70 : CLS PRINT a$; PRINT TAB(21) USING "####.##";a; PRINT TAB(32) USING "####.##";b; PRINT TAB(44)z TAB(57)x TAB(71)y RESTORE:GOTO 30 80 : READ a$,a,b IF a$=b$THEN 80 'If distant location same as home location IF b=e THEN m=m+0.001 'To prevent divide by zero error if latitudes are identical w=a:GOSUB conv d=FNrad(w):w=b:GOSUB conv f=FNrad(w) GOSUB conv IF a$="xx"THEN RESTORE:GOTO 30 GOSUB calc a$=UCASE$(a$):z=CINT(x*1.6093):x=CINT(x):y=CINT(y) PRINT a$; PRINT TAB(21) USING "####.##";a; PRINT TAB(32) USING "####.##";b; PRINT TAB(44)z TAB(57)x TAB(71)y GOTO 80 90 : COLOR 1,0:CLS OPEN "prt:" FOR OUTPUT AS #2 LEN=5 PRINT#2,CHR$(27);"[6q" PRINT#2,TAB(21);CHR$(27);"[6w";CHR$(27);"[4m";" DISTANCE & HEADING ";CHR$(27);"[24m";CHR$(27);"[5w" PRINT#2, DATE$ PRINT#2," " PRINT#2,"HOME LOCATION: "ab$; PRINT#2,USING " LAT ####.##";c; PRINT#2,USING " LONG ####.##";e PRINT#2," " PRINT#2,CHR$(27);"[4m";"DISTANT LOCATION";TAB(26);"LAT";TAB(37);"LONG";TAB(49);"KM"; PRINT#2,TAB(61);"MILES";TAB(73);"HEADING ";CHR$(27);"[24m" PRINT#2," " 100 : WINDOW 3,,(210,100)-(410,125),0 PRINT"LIST or QUIT if required" LINE (0,8)-(198,8),1 PRINT:COLOR 3,2:INPUT"CITY";d$ IF d$="list"THEN COLOR 1,0:CLS:PRINT:PRINT" PRINTING":GOTO 150 WINDOW CLOSE 3 IF d$="quit"THEN CLOSE#2:NEW 110 : READ a$,a,b IF a$=b$THEN 110 IF b=e THEN m=m+0.001 IF LEFT$(a$,8)=LEFT$(d$,8)THEN 120 IF a$="xx"THEN RESTORE:PRINT#2,UCASE$(d$);" NOT LISTED IN DATA":GOTO 100 GOTO 110 120 : w=a:GOSUB conv d=FNrad(w):w=b:GOSUB conv f=FNrad(w) GOSUB calc a$=UCASE$(a$):z=CINT(x*1.6093):x=CINT(x):y=CINT(y) IF LEFT$(s$,1)="y"THEN 130 GOTO 140 130 : SAY TRANSLATE$(a$):SAY TRANSLATE$(STR$(x)):SAY TRANSLATE$(mi$):SAY TRANSLATE$(STR$(y)) SAY TRANSLATE$(de$) 140 : PRINT#2,a$; PRINT#2,TAB(21); USING "####.##";a; PRINT#2,TAB(32); USING "####.##";b; PRINT#2,TAB(44);z; TAB(57);x; TAB(71);y RESTORE:GOTO 100 150 : READ a$,a,b IF a$=b$THEN 150 IF b=e THEN m=m+0.001 w=a:GOSUB conv d=FNrad(w):w=b:GOSUB conv f=FNrad(w) GOSUB conv IF a$="xx"THEN RESTORE:GOTO 100 GOSUB calc a$=UCASE$(a$):z=CINT(x*1.6093):x=CINT(x):y=CINT(y) PRINT#2,a$; PRINT#2,TAB(21); USING "####.##";a; PRINT#2,TAB(32); USING "####.##";b; PRINT#2,TAB(44);z; TAB(57);x; TAB(71);y GOTO 150 calc:'Calculation of subtended angle for great circle arc g=f-m:h=COS(g)*COS(d)*COS(l)+(SIN(d)*SIN(l)) i=-ATN(h/SQR(-h*h+1))+pi/2:j=(SIN(d)-SIN(l)*COS(i))/(SIN(i)*COS(l)) x=i*5.36162e-315 y=(-ATN(j/SQR(-j*j+1))+pi/2)*180/pi IF SGN(SIN(g))=1 THEN y=360-y:RETURN conv:'Conversion of DEG.MIN to decimal degrees including negative numbers v=(ABS(w)-INT(ABS(w)))*100/60+INT(ABS(w)) IF w<0 THEN v=-v w=v:RETURN DATA aberdeen,57.09,2.06 DATA addis ababa,9.02,-38.42 DATA adelaide,-34.55,-138.32 DATA anchorage,61.32,149.5 DATA ankara,40,-32.54 DATA antigua,17,61.5 DATA antwerp,51.13,-4.25 DATA athens,37.58,-23.46 DATA atlanta,33.5,84.15 DATA auckland,-36.52,-174.46 DATA augusta,33.29,81.59 DATA austin,30.2,97.45 DATA azores,38.44,29 DATA bagdad,33.2,-44.3 DATA bahamas,24.4,74 DATA bali,-8.2,-115 DATA bangkok,13.45,-100.31 DATA barbados,13,59.3 DATA barcelona,41.21,-2.1 DATA basel,47.35,-7.35 DATA beiping,39.5,-116.2 DATA beirut,33.53,-35.31 DATA belfast,54.35,5.36 DATA belgrade,44.5,-20.37 DATA berlin,52.32,-13.24 DATA bermuda,32.2,65.45 DATA bern,46.57,-7.28 DATA bogota,4.34,74 DATA bombay,18.55,-72.5 DATA bonn,50.43,-7.06 DATA boston,42.2,71 DATA brisbane,-27.25,-152.54 DATA bristol,51.26,2.35 DATA brunei,4.5,-115 DATA bucharest,44.27,-26.1 DATA budapest,47.29,-19.05 DATA buenos aires,-34.3,58.2 DATA buffalo,42.55,78.5 DATA cairo,30.01,-31.14 DATA calais,50.57,-1.56 DATA calcutta,-35.15,-149.08 DATA calgary,51,114.1 DATA canary is,29.3,17 DATA canberra,-35.15,-149.08 DATA canton,23.15,-113.15 DATA capetown,-33.56,-18.28 DATA caracas,10.3,66.5 DATA cardiff,51.28,3.11 DATA cayman is,19.4,79.5 DATA cedar rapids,42,91.38 DATA ceylon,7.3,-80.5 DATA chatham,47.02,65.28 DATA chicago,41.56,87.5 DATA christchurch,-43.33,-172.39 DATA cleveland,41.28,81.43 DATA cook is,-22,157 DATA copenhagen,55.41,-12.34 DATA corsica,42,-9 DATA costa rica,10,84 DATA crete,35.2,-25 DATA curacao,12.1,69 DATA cyprus,35,-33 DATA dakar,14.34,17.29 DATA dallas,32.5,96.5 DATA damascus,33.3,-36.18 DATA darwin,-12.2,-130.5 DATA delhi,28.38,-77.17 DATA denver,39.48,105 DATA detroit,42.2,83.5 DATA dublin,53.2,6.18 DATA dubrovnik,42.39,-18.6 DATA duluth,46.48,92.1 DATA dundee,56.29,3 DATA edinburgh,55.57,3.12 DATA edmonton,53.3,113.3 DATA falkland is,-55,45 DATA fiji,-17.2,-179 DATA frankfurt,50.7,-8.4 DATA gander,48.58,54.35 DATA geneva,46.12,-6.09 DATA gibralter,36.07,5.22 DATA glasgow,55.52,4.14 DATA goose bay,53.15,60.2 DATA grenada,12.1,61.4 DATA haiti,19.06,72.3 DATA halifax,44.38,63.35 DATA hamburg,53.32,-9.59 DATA havana,23.08,82.22 DATA hawaii,19.35,155.3 DATA helsinki,60.15,-25.03 DATA hobart,-42.5,-147.21 DATA honduras,14.4,86.3 DATA hong kong,22.11,-14.14 DATA honolulu,21.25,157.55 DATA houston,29.5,95.2 DATA innsbruck,47.16,-11.23 DATA jakarta,-6.09,-106.49 DATA jamaica,18.1,77.3 DATA johannesburg,-26.1,-28.08 DATA keflavik,64.02,22.35 DATA key west,24.4,82 DATA knoxville,35.58,83.57 DATA kuala lumpur,3.09,-101.41 DATA kuwait,29.3,-47.3 DATA la ceiba,15.4,86.5 DATA la paz,-16.2,68.1 DATA lagos,6.25,-3.27 DATA las vegas,36.1,115.05 DATA lima,-12.06,76.55 DATA lisbon,38.42,9.1 DATA london ont,43,81.2 DATA london,51.3,.07 DATA los angeles,34,118.1 DATA madeira is,32.5,17 DATA madras,13.08,-80.19 DATA madrid,40.25,3.45 DATA malta,35.5,-14.3 DATA manchester,53.3,2.15 DATA manila,14.4,-121.03 DATA melbourne,-37.4,-145 DATA mexico city,19.2,99.1 DATA miami,25.52,80.15 DATA milan,45.28,-9.1 DATA minneapolis,44.58,93.2 DATA moncton,46.07,64.51 DATA montreal,45.31,73.34 DATA moscow,55.45,-37.35 DATA munich,48.08,-11.33 DATA nairobi,-1.2,-36.5 DATA nanaimo,49.1,124 DATA naples,40.4,-14.05 DATA nashville,36.12,86.46 DATA nassau,25,77.3 DATA new orleans,30,90.05 DATA new york,40.45,74 DATA nicaragua,11.4,85.3 DATA north bay,46.2,79.3 DATA orlando,28.3,81.25 DATA oshawa,43.53,53.76 DATA oslo,59.53,-10.52 DATA ottawa,45.27,75.42 DATA palm springs,33.51,116.35 DATA panama,9,79.25 DATA papua,-8,-145 DATA paris,48.5,-2.2 DATA penang,5.3,-100.28 DATA perth,-31.57,-115.52 DATA phoenix,33.3,112.1 DATA quebec,46.52,71.13 DATA quito,-.15,78.35 DATA regina,50.3,104.35 DATA reno,39.3,119.5 DATA rio de janeiro,-22.5,43 DATA rome,41.54,-12.3 DATA saint john,45.16,66.03 DATA salzburg,47.48,-13.02 DATA san diego,32.5,117.1 DATA san francisco,37.45,122.3 DATA santiago,47.48,-13.02 DATA sao paulo,-23.32,46.37 DATA sarasota,27.1,82.3 DATA saskatoon,52.1,106.4 DATA sault ste marie,46.32,84.2 DATA seattle,47.36,122.2 DATA shanghai,31.1,-121.25 DATA shannon,52.35,9.3 DATA singapore,1.17,-103.51 DATA split,43.31,-16.26 DATA sri lanka,7.3,-80.5 DATA st johns,47.34,52.41 DATA st louis,38.4,90.12 DATA st petersburg,27,82.4 DATA stockholm,59.17,-18.03 DATA sudbury,46.3,81 DATA sumatera,-.4,-100.2 DATA sydney,-33.53,-151.1 DATA tahiti,-17.45,-149.3 DATA taipei,25.02,-121.3 DATA tampa,28,82.25 DATA tasmania,-49,-146.3 DATA tehran,35.44,-51.3 DATA telaviv,32.04,-34.45 DATA thunder bay,48.25,89.1 DATA timmins,48.28,81.25 DATA tokyo,35.45,-139.45 DATA toronto,43.39,79.2 DATA trinidad,10.3,61.2 DATA tucson,32.13,110.58 DATA vancouver,49.2,123.1 DATA victoria,48.3,111 DATA vienna,48.12,-16.22 DATA windsor,42.18,83 DATA winnipeg,49.5,97.15 DATA zurich,47.22,-8.32 DATA xx,0,0 'This must be included to prevent out of data error